Manufacturing companies use computer-aided manufacturing (CAM) software systems to program computer numerical control (CNC) machine tools for the production of discrete parts such as molds, dies, tools, prototypes, aerospace components, and more. The variety of machined shapes is potentially infinite. Shapes are usually classified according to convenient mathematical structures, often involving the use of sub-fields of mathematics (topology).